package juanma;

import java.util.ArrayList;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;

public class Personaje {
	
	protected ArrayList<Backpack> listaBackpacks;
	public String nombre;
	
	public Personaje(){
		listaBackpacks = new ArrayList<Backpack>();
		nombre = new String();
	}
	
	public void addBackpack(Backpack bpNuevo){
		if(bpNuevo != null)
			listaBackpacks.add(bpNuevo);
	}
	
	public Backpack getBackpack(int indice){
		if(indice < listaBackpacks.size()){
			return listaBackpacks.get(indice);
		}
		else return null;
	}

	public Element serializar(Document doc) {
		Element elementoPers = doc.createElement("Personaje");
		elementoPers.setAttribute("nombre", this.nombre);
		Element elementoBPs = doc.createElement("Backpacks");
		elementoPers.appendChild(elementoBPs);
		for(Backpack bp : this.listaBackpacks){
			elementoBPs.appendChild(bp.serializar(doc));
		}
		return elementoPers;
	}

	public static Personaje hidratar(Document doc) {
		Personaje personaje = new Personaje();
		Element elementoPers = (Element)doc.getElementsByTagName("Personaje").item(0);
		personaje.nombre = 	elementoPers.getAttribute("nombre");
		Element elementoBackpacks = (Element)elementoPers.getElementsByTagName("Backpacks").item(0);
		
		for(int i=0; i<elementoBackpacks.getChildNodes().getLength(); i++) {
			Node bpActual = elementoBackpacks.getChildNodes().item(i);
			Backpack bpNuevo = Backpack.hidratar(bpActual);
			personaje.addBackpack(bpNuevo);
		}
		
		return personaje;
	}
	
	
}
